package chapter_02
import java.io.File
import scala.io.Source

//1.对于函数除了递归不提倡使用return
object Func {
    //2. 为函数提供默认值
    def hello(content: String, left: String = "[", right: String = "]") = left + content + right

    def sum(params: Int*) = {
        var sum = 0
        for (i <- params) {
            sum += i
        }
        sum
    }

    //3. 函数没有返回值,这种函数声明称作过程
    def func1(a: Int, b: Int) {
    }
    //两种声明的函数是一样的
    def func2(a: Int, b: Int): Unit = {
    }

    // 4. 懒加载
    lazy val file = Source.fromFile("").getLines().mkString
    //懒加载位于函数定义和变量定义之间，自己体会

    def main(args: Array[String]) {
        hello("hello")
        //可以在调用的时候改变默认值，参数的顺序也是不一定的
        hello("hello", left = "<<<")
        sum(1, 3, 4, 5)
        sum(1 to 5: _*)
    }
}